/*
 * @Author: liu wang wang
 * @Date: 2021-02-22 11:57:51
 * @LastEditTime: 2021-03-05 11:17:09
 * @LastEditors: liu wang wang
 * @Description: 
 * @FilePath: \offer\src\index.ts
 */
// 问题1：测试用例
// import { mySetinterval, myClear } from "./q1";
// const interval = mySetinterval(()=>{
//   console.log(new Date())
// }, 1000, 1000);
// setTimeout(()=>{
//   myClear(interval);
// },10000)

// 问题2： 测试用例
// import { merge } from "./q2";
// const arr = [[1, 2, 3], [7, 8, 10], [2, 3, 4], [6], [1, 2], [8, 9]];
// console.log(merge(arr));

// 问题3： 测试用例
/**
 * 下面的用例
 * 递归耗时: 2245.578125 ms;
 * for循环耗时: 4.406982421875 ms;
 */
// import { fibonacci, fibonacci2 } from "./q3";
// console.time('fibonacci')
// for(let i = 0; i<40; i++){
//   console.log(fibonacci(i));
// }
// console.timeEnd('fibonacci')

// console.time('fibonacci2')
// for(let i = 0; i<40; i++){
//   console.log(fibonacci2(i));
// }
// console.timeEnd('fibonacci2')

// 问题4：测试用例
// import { getSubStringOflongest, getSubStringOflongest2, getSubStringOflongest3 } from "./q4";
// console.log(getSubStringOflongest('qweqwepo'))
// console.log(getSubStringOflongest('abcabcbb'))
// console.log(getSubStringOflongest2('abcabcbb'))
// console.log(getSubStringOflongest3('qweqwepo'))
// console.log(getSubStringOflongest3('abcabcbb'))
// console.log(getSubStringOflongest3('abba'))

// 问题6：测试用例

// import { Debounce, Trottle } from "./q6";

// const debounceFn = new Debounce().use((e:Event)=>{
//     console.log(e);
// }, 500, true)

// const trottleFn = new Trottle().use((e:Event)=>{
//   console.log(e);
// },1000)

// const btn = document.createElement('button');
// btn.innerHTML = "防抖点击";
// const btn2 = btn.cloneNode(true);
// btn2.textContent = "节流点击";
// btn.addEventListener('click', function(e:Event){
//   debounceFn(e);
// });
// btn2.addEventListener('click', function(e:Event){
//   trottleFn(e);
// });
// document.body.appendChild(btn);
// document.body.appendChild(btn2);

// 问题7：测试用例
// import { add, myadd } from "./q7";
// console.log(add(1)(2)(3));
// console.log(myadd(2)(3)());

// 问题8：测试用例

// import { climbStairs, climbStairs2 } from "./q8";
// console.time('ll');
// console.log(climbStairs(40));
// console.timeEnd('ll')

// console.time('ww');
// console.log(climbStairs2(400));
// console.timeEnd('ww')

// 问题9： 测试用例

// require("./q9");


// 问题10： 测试用例
require('./q10');
